home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Technology Seed / Jan. '98 ATS.toast / QuickTime™ 3.0b11 / QTPublicInterfaces / CIncludes / MediaHandlers.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-12  |  19.6 KB  |  580 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        MediaHandlers.h
  3.  
  4.      Contains:    QuickTime interfaces
  5.  
  6.      Version:    Technology:    
  7.                  Release:    QuickTime 3.0 Beta
  8.  
  9.      Copyright:    © 1990-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __MEDIAHANDLERS__
  19. #define __MEDIAHANDLERS__
  20.  
  21. #ifndef __MACMEMORY__
  22. #include <MacMemory.h>
  23. #endif
  24. #ifndef __IMAGECOMPRESSION__
  25. #include <ImageCompression.h>
  26. #endif
  27. #ifndef __MOVIES__
  28. #include <Movies.h>
  29. #endif
  30.  
  31.  
  32.  
  33.  
  34. #if PRAGMA_ONCE
  35. #pragma once
  36. #endif
  37.  
  38. #ifdef __cplusplus
  39. extern "C" {
  40. #endif
  41.  
  42. #if PRAGMA_IMPORT
  43. #pragma import on
  44. #endif
  45.  
  46. #if PRAGMA_STRUCT_ALIGN
  47.     #pragma options align=mac68k
  48. #elif PRAGMA_STRUCT_PACKPUSH
  49.     #pragma pack(push, 2)
  50. #elif PRAGMA_STRUCT_PACK
  51.     #pragma pack(2)
  52. #endif
  53.  
  54. typedef CALLBACK_API( void , PrePrerollCompleteProcPtr )(MediaHandler mh, OSErr err, void *refcon);
  55. typedef STACK_UPP_TYPE(PrePrerollCompleteProcPtr)                 PrePrerollCompleteUPP;
  56.  
  57. enum {
  58.     handlerHasSpatial            = 1 << 0,
  59.     handlerCanClip                = 1 << 1,
  60.     handlerCanMatte                = 1 << 2,
  61.     handlerCanTransferMode        = 1 << 3,
  62.     handlerNeedsBuffer            = 1 << 4,
  63.     handlerNoIdle                = 1 << 5,
  64.     handlerNoScheduler            = 1 << 6,
  65.     handlerWantsTime            = 1 << 7,
  66.     handlerCGrafPortOnly        = 1 << 8,
  67.     handlerCanSend                = 1 << 9,
  68.     handlerCanHandleComplexMatrix = 1 << 10
  69. };
  70.  
  71. /* media task flags */
  72.  
  73. enum {
  74.     mMustDraw                    = 1 << 3,
  75.     mAtEnd                        = 1 << 4,
  76.     mPreflightDraw                = 1 << 5,
  77.     mSyncDrawing                = 1 << 6
  78. };
  79.  
  80. /* media task result flags */
  81.  
  82. enum {
  83.     mDidDraw                    = 1 << 0,
  84.     mNeedsToDraw                = 1 << 2,
  85.     mDrawAgain                    = 1 << 3,
  86.     mPartialDraw                = 1 << 4
  87. };
  88.  
  89.  
  90. enum {
  91.     forceUpdateRedraw            = 1 << 0,
  92.     forceUpdateNewBuffer        = 1 << 1
  93. };
  94.  
  95. /* media hit test flags */
  96.  
  97. enum {
  98.     mHitTestBounds                = 1L << 0,                        /*    point must only be within targetRefCon's bounding box */
  99.     mHitTestImage                = 1L << 1,                        /*  point must be within the shape of the targetRefCon's image */
  100.     mHitTestInvisible            = 1L << 2,                        /*  invisible targetRefCon's may be hit tested */
  101.     mHitTestIsClick                = 1L << 3                        /*  for codecs that want mouse events */
  102. };
  103.  
  104. /* media is opaque flags */
  105.  
  106. enum {
  107.     mOpaque                        = 1L << 0,
  108.     mInvisible                    = 1L << 1
  109. };
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117. struct GetMovieCompleteParams {
  118.     short                             version;
  119.     Movie                             theMovie;
  120.     Track                             theTrack;
  121.     Media                             theMedia;
  122.     TimeScale                         movieScale;
  123.     TimeScale                         mediaScale;
  124.     TimeValue                         movieDuration;
  125.     TimeValue                         trackDuration;
  126.     TimeValue                         mediaDuration;
  127.     Fixed                             effectiveRate;
  128.     TimeBase                         timeBase;
  129.     short                             volume;
  130.     Fixed                             width;
  131.     Fixed                             height;
  132.     MatrixRecord                     trackMovieMatrix;
  133.     CGrafPtr                         moviePort;
  134.     GDHandle                         movieGD;
  135.     PixMapHandle                     trackMatte;
  136.     QTAtomContainer                 inputMap;
  137. };
  138. typedef struct GetMovieCompleteParams    GetMovieCompleteParams;
  139.  
  140. enum {
  141.     kMediaVideoParamBrightness    = 1,
  142.     kMediaVideoParamContrast    = 2,
  143.     kMediaVideoParamHue            = 3,
  144.     kMediaVideoParamSharpness    = 4,
  145.     kMediaVideoParamSaturation    = 5,
  146.     kMediaVideoParamBlackLevel    = 6,
  147.     kMediaVideoParamWhiteLevel    = 7
  148. };
  149.  
  150.  
  151. typedef Handle *                        dataHandlePtr;
  152. typedef dataHandlePtr *                    dataHandleHandle;
  153.  
  154.  
  155.  
  156. /* MediaCallRange2 */
  157. /* These are unique to each type of media handler */
  158. /* They are also included in the public interfaces */
  159.  
  160.  
  161.  
  162. /***** These are the calls for dealing with the Generic media handler *****/
  163. EXTERN_API( ComponentResult )
  164. MediaInitialize                    (MediaHandler             mh,
  165.                                  GetMovieCompleteParams * gmc)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0501, 0x7000, 0xA82A);
  166.  
  167. EXTERN_API( ComponentResult )
  168. MediaSetHandlerCapabilities        (MediaHandler             mh,
  169.                                  long                     flags,
  170.                                  long                     flagsMask)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0502, 0x7000, 0xA82A);
  171.  
  172. EXTERN_API( ComponentResult )
  173. MediaIdle                        (MediaHandler             mh,
  174.                                  TimeValue                 atMediaTime,
  175.                                  long                     flagsIn,
  176.                                  long *                    flagsOut,
  177.                                  const TimeRecord *        movieTime)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0503, 0x7000, 0xA82A);
  178.  
  179. EXTERN_API( ComponentResult )
  180. MediaGetMediaInfo                (MediaHandler             mh,
  181.                                  Handle                 h)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0504, 0x7000, 0xA82A);
  182.  
  183. EXTERN_API( ComponentResult )
  184. MediaPutMediaInfo                (MediaHandler             mh,
  185.                                  Handle                 h)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0505, 0x7000, 0xA82A);
  186.  
  187. EXTERN_API( ComponentResult )
  188. MediaSetActive                    (MediaHandler             mh,
  189.                                  Boolean                 enableMedia)                        FIVEWORDINLINE(0x2F3C, 0x0002, 0x0506, 0x7000, 0xA82A);
  190.  
  191. EXTERN_API( ComponentResult )
  192. MediaSetRate                    (MediaHandler             mh,
  193.                                  Fixed                     rate)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0507, 0x7000, 0xA82A);
  194.  
  195. EXTERN_API( ComponentResult )
  196. MediaGGetStatus                    (MediaHandler             mh,
  197.                                  ComponentResult *        statusErr)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0508, 0x7000, 0xA82A);
  198.  
  199. EXTERN_API( ComponentResult )
  200. MediaTrackEdited                (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0509, 0x7000, 0xA82A);
  201.  
  202. EXTERN_API( ComponentResult )
  203. MediaSetMediaTimeScale            (MediaHandler             mh,
  204.                                  TimeScale                 newTimeScale)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x050A, 0x7000, 0xA82A);
  205.  
  206. EXTERN_API( ComponentResult )
  207. MediaSetMovieTimeScale            (MediaHandler             mh,
  208.                                  TimeScale                 newTimeScale)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x050B, 0x7000, 0xA82A);
  209.  
  210. EXTERN_API( ComponentResult )
  211. MediaSetGWorld                    (MediaHandler             mh,
  212.                                  CGrafPtr                 aPort,
  213.                                  GDHandle                 aGD)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x050C, 0x7000, 0xA82A);
  214.  
  215. EXTERN_API( ComponentResult )
  216. MediaSetDimensions                (MediaHandler             mh,
  217.                                  Fixed                     width,
  218.                                  Fixed                     height)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x050D, 0x7000, 0xA82A);
  219.  
  220. EXTERN_API( ComponentResult )
  221. MediaSetClip                    (MediaHandler             mh,
  222.                                  RgnHandle                 theClip)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x050E, 0x7000, 0xA82A);
  223.  
  224. EXTERN_API( ComponentResult )
  225. MediaSetMatrix                    (MediaHandler             mh,
  226.                                  MatrixRecord *            trackMovieMatrix)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x050F, 0x7000, 0xA82A);
  227.  
  228. EXTERN_API( ComponentResult )
  229. MediaGetTrackOpaque                (MediaHandler             mh,
  230.                                  Boolean *                trackIsOpaque)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0510, 0x7000, 0xA82A);
  231.  
  232. EXTERN_API( ComponentResult )
  233. MediaSetGraphicsMode            (MediaHandler             mh,
  234.                                  long                     mode,
  235.                                  const RGBColor *        opColor)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0511, 0x7000, 0xA82A);
  236.  
  237. EXTERN_API( ComponentResult )
  238. MediaGetGraphicsMode            (MediaHandler             mh,
  239.                                  long *                    mode,
  240.                                  RGBColor *                opColor)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0512, 0x7000, 0xA82A);
  241.  
  242. EXTERN_API( ComponentResult )
  243. MediaGSetVolume                    (MediaHandler             mh,
  244.                                  short                     volume)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0513, 0x7000, 0xA82A);
  245.  
  246. EXTERN_API( ComponentResult )
  247. MediaSetSoundBalance            (MediaHandler             mh,
  248.                                  short                     balance)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x0514, 0x7000, 0xA82A);
  249.  
  250. EXTERN_API( ComponentResult )
  251. MediaGetSoundBalance            (MediaHandler             mh,
  252.                                  short *                balance)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0515, 0x7000, 0xA82A);
  253.  
  254. EXTERN_API( ComponentResult )
  255. MediaGetNextBoundsChange        (MediaHandler             mh,
  256.                                  TimeValue *            when)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0516, 0x7000, 0xA82A);
  257.  
  258. EXTERN_API( ComponentResult )
  259. MediaGetSrcRgn                    (MediaHandler             mh,
  260.                                  RgnHandle                 rgn,
  261.                                  TimeValue                 atMediaTime)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0517, 0x7000, 0xA82A);
  262.  
  263. EXTERN_API( ComponentResult )
  264. MediaPreroll                    (MediaHandler             mh,
  265.                                  TimeValue                 time,
  266.                                  Fixed                     rate)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0518, 0x7000, 0xA82A);
  267.  
  268. EXTERN_API( ComponentResult )
  269. MediaSampleDescriptionChanged    (MediaHandler             mh,
  270.                                  long                     index)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0519, 0x7000, 0xA82A);
  271.  
  272. EXTERN_API( ComponentResult )
  273. MediaHasCharacteristic            (MediaHandler             mh,
  274.                                  OSType                 characteristic,
  275.                                  Boolean *                hasIt)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x051A, 0x7000, 0xA82A);
  276.  
  277. EXTERN_API( ComponentResult )
  278. MediaGetOffscreenBufferSize        (MediaHandler             mh,
  279.                                  Rect *                    bounds,
  280.                                  short                     depth,
  281.                                  CTabHandle             ctab)                                FIVEWORDINLINE(0x2F3C, 0x000A, 0x051B, 0x7000, 0xA82A);
  282.  
  283. EXTERN_API( ComponentResult )
  284. MediaSetHints                    (MediaHandler             mh,
  285.                                  long                     hints)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x051C, 0x7000, 0xA82A);
  286.  
  287. EXTERN_API( ComponentResult )
  288. MediaGetName                    (MediaHandler             mh,
  289.                                  Str255                 name,
  290.                                  long                     requestedLanguage,
  291.                                  long *                    actualLanguage)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x051D, 0x7000, 0xA82A);
  292.  
  293. EXTERN_API( ComponentResult )
  294. MediaForceUpdate                (MediaHandler             mh,
  295.                                  long                     forceUpdateFlags)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x051E, 0x7000, 0xA82A);
  296.  
  297. EXTERN_API( ComponentResult )
  298. MediaGetDrawingRgn                (MediaHandler             mh,
  299.                                  RgnHandle *            partialRgn)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x051F, 0x7000, 0xA82A);
  300.  
  301. EXTERN_API( ComponentResult )
  302. MediaGSetActiveSegment            (MediaHandler             mh,
  303.                                  TimeValue                 activeStart,
  304.                                  TimeValue                 activeDuration)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0520, 0x7000, 0xA82A);
  305.  
  306. EXTERN_API( ComponentResult )
  307. MediaInvalidateRegion            (MediaHandler             mh,
  308.                                  RgnHandle                 invalRgn)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0521, 0x7000, 0xA82A);
  309.  
  310. EXTERN_API( ComponentResult )
  311. MediaGetNextStepTime            (MediaHandler             mh,
  312.                                  short                     flags,
  313.                                  TimeValue                 mediaTimeIn,
  314.                                  TimeValue *            mediaTimeOut,
  315.                                  Fixed                     rate)                                FIVEWORDINLINE(0x2F3C, 0x000E, 0x0522, 0x7000, 0xA82A);
  316.  
  317. EXTERN_API( ComponentResult )
  318. MediaSetNonPrimarySourceData    (MediaHandler             mh,
  319.                                  long                     inputIndex,
  320.                                  long                     dataDescriptionSeed,
  321.                                  Handle                 dataDescription,
  322.                                  void *                    data,
  323.                                  long                     dataSize,
  324.                                  ICMCompletionProcRecordPtr  asyncCompletionProc,
  325.                                  UniversalProcPtr         transferProc,
  326.                                  void *                    refCon)                                FIVEWORDINLINE(0x2F3C, 0x0020, 0x0523, 0x7000, 0xA82A);
  327.  
  328. EXTERN_API( ComponentResult )
  329. MediaChangedNonPrimarySource    (MediaHandler             mh,
  330.                                  long                     inputIndex)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0524, 0x7000, 0xA82A);
  331.  
  332. EXTERN_API( ComponentResult )
  333. MediaTrackReferencesChanged        (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0525, 0x7000, 0xA82A);
  334.  
  335. EXTERN_API( ComponentResult )
  336. MediaGetSampleDataPointer        (MediaHandler             mh,
  337.                                  long                     sampleNum,
  338.                                  Ptr *                    dataPtr,
  339.                                  long *                    dataSize,
  340.                                  long *                    sampleDescIndex)                    FIVEWORDINLINE(0x2F3C, 0x0010, 0x0526, 0x7000, 0xA82A);
  341.  
  342. EXTERN_API( ComponentResult )
  343. MediaReleaseSampleDataPointer    (MediaHandler             mh,
  344.                                  long                     sampleNum)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0527, 0x7000, 0xA82A);
  345.  
  346. EXTERN_API( ComponentResult )
  347. MediaTrackPropertyAtomChanged    (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0528, 0x7000, 0xA82A);
  348.  
  349. EXTERN_API( ComponentResult )
  350. MediaSetTrackInputMapReference    (MediaHandler             mh,
  351.                                  QTAtomContainer         inputMap)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0529, 0x7000, 0xA82A);
  352.  
  353.  
  354. EXTERN_API( ComponentResult )
  355. MediaSetVideoParam                (MediaHandler             mh,
  356.                                  long                     whichParam,
  357.                                  unsigned short *        value)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x052B, 0x7000, 0xA82A);
  358.  
  359. EXTERN_API( ComponentResult )
  360. MediaGetVideoParam                (MediaHandler             mh,
  361.                                  long                     whichParam,
  362.                                  unsigned short *        value)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x052C, 0x7000, 0xA82A);
  363.  
  364. EXTERN_API( ComponentResult )
  365. MediaCompare                    (MediaHandler             mh,
  366.                                  Boolean *                isOK,
  367.                                  Media                     srcMedia,
  368.                                  ComponentInstance         srcMediaComponent)                    FIVEWORDINLINE(0x2F3C, 0x000C, 0x052D, 0x7000, 0xA82A);
  369.  
  370. EXTERN_API( ComponentResult )
  371. MediaGetClock                    (MediaHandler             mh,
  372.                                  ComponentInstance *    clock)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x052E, 0x7000, 0xA82A);
  373.  
  374. EXTERN_API( ComponentResult )
  375. MediaSetSoundOutputComponent    (MediaHandler             mh,
  376.                                  Component                 outputComponent)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x052F, 0x7000, 0xA82A);
  377.  
  378. EXTERN_API( ComponentResult )
  379. MediaGetSoundOutputComponent    (MediaHandler             mh,
  380.                                  Component *            outputComponent)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0530, 0x7000, 0xA82A);
  381.  
  382. EXTERN_API( ComponentResult )
  383. MediaSetSoundLocalizationData    (MediaHandler             mh,
  384.                                  Handle                 data)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0531, 0x7000, 0xA82A);
  385.  
  386.  
  387.  
  388.  
  389. EXTERN_API( ComponentResult )
  390. MediaGetInvalidRegion            (MediaHandler             mh,
  391.                                  RgnHandle                 rgn)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x053C, 0x7000, 0xA82A);
  392.  
  393.  
  394. EXTERN_API( ComponentResult )
  395. MediaSampleDescriptionB2N        (MediaHandler             mh,
  396.                                  SampleDescriptionHandle  sampleDescriptionH)                FIVEWORDINLINE(0x2F3C, 0x0004, 0x053E, 0x7000, 0xA82A);
  397.  
  398. EXTERN_API( ComponentResult )
  399. MediaSampleDescriptionN2B        (MediaHandler             mh,
  400.                                  SampleDescriptionHandle  sampleDescriptionH)                FIVEWORDINLINE(0x2F3C, 0x0004, 0x053F, 0x7000, 0xA82A);
  401.  
  402. EXTERN_API( ComponentResult )
  403. MediaQueueNonPrimarySourceData    (MediaHandler             mh,
  404.                                  long                     inputIndex,
  405.                                  long                     dataDescriptionSeed,
  406.                                  Handle                 dataDescription,
  407.                                  void *                    data,
  408.                                  long                     dataSize,
  409.                                  ICMCompletionProcRecordPtr  asyncCompletionProc,
  410.                                  const ICMFrameTimeRecord * frameTime,
  411.                                  UniversalProcPtr         transferProc,
  412.                                  void *                    refCon)                                FIVEWORDINLINE(0x2F3C, 0x0024, 0x0540, 0x7000, 0xA82A);
  413.  
  414. EXTERN_API( ComponentResult )
  415. MediaFlushNonPrimarySourceData    (MediaHandler             mh,
  416.                                  long                     inputIndex)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0541, 0x7000, 0xA82A);
  417.  
  418.  
  419. EXTERN_API( ComponentResult )
  420. MediaGetURLLink                    (MediaHandler             mh,
  421.                                  Point                     displayWhere,
  422.                                  Handle *                urlLink)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0543, 0x7000, 0xA82A);
  423.  
  424.  
  425. EXTERN_API( ComponentResult )
  426. MediaMakeMediaTimeTable            (MediaHandler             mh,
  427.                                  long **                offsets,
  428.                                  TimeValue                 startTime,
  429.                                  TimeValue                 endTime,
  430.                                  TimeValue                 timeIncrement,
  431.                                  short                     firstDataRefIndex,
  432.                                  short                     lastDataRefIndex,
  433.                                  long *                    retDataRefSkew)                        FIVEWORDINLINE(0x2F3C, 0x0018, 0x0545, 0x7000, 0xA82A);
  434.  
  435. EXTERN_API( ComponentResult )
  436. MediaHitTestForTargetRefCon        (MediaHandler             mh,
  437.                                  long                     flags,
  438.                                  Point                     loc,
  439.                                  long *                    targetRefCon)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0546, 0x7000, 0xA82A);
  440.  
  441. EXTERN_API( ComponentResult )
  442. MediaHitTestTargetRefCon        (MediaHandler             mh,
  443.                                  long                     targetRefCon,
  444.                                  long                     flags,
  445.                                  Point                     loc,
  446.                                  Boolean *                wasHit)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0547, 0x7000, 0xA82A);
  447.  
  448. EXTERN_API( ComponentResult )
  449. MediaGetActionsForQTEvent        (MediaHandler             mh,
  450.                                  QTEventRecordPtr         event,
  451.                                  long                     targetRefCon,
  452.                                  QTAtomContainer *        container,
  453.                                  QTAtom *                atom)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0548, 0x7000, 0xA82A);
  454.  
  455. EXTERN_API( ComponentResult )
  456. MediaDisposeTargetRefCon        (MediaHandler             mh,
  457.                                  long                     targetRefCon)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0549, 0x7000, 0xA82A);
  458.  
  459. EXTERN_API( ComponentResult )
  460. MediaTargetRefConsEqual            (MediaHandler             mh,
  461.                                  long                     firstRefCon,
  462.                                  long                     secondRefCon,
  463.                                  Boolean *                equal)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x054A, 0x7000, 0xA82A);
  464.  
  465. EXTERN_API( ComponentResult )
  466. MediaSetActionsCallback            (MediaHandler             mh,
  467.                                  ActionsUPP             actionsCallbackProc,
  468.                                  void *                    refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x054B, 0x7000, 0xA82A);
  469.  
  470. EXTERN_API( ComponentResult )
  471. MediaPrePrerollBegin            (MediaHandler             mh,
  472.                                  TimeValue                 time,
  473.                                  Fixed                     rate,
  474.                                  PrePrerollCompleteUPP     completeProc,
  475.                                  void *                    refcon)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x054C, 0x7000, 0xA82A);
  476.  
  477. EXTERN_API( ComponentResult )
  478. MediaPrePrerollCancel            (MediaHandler             mh,
  479.                                  void *                    refcon)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x054D, 0x7000, 0xA82A);
  480.  
  481. EXTERN_API( ComponentResult )
  482. MediaExecuteOneAction            (MediaHandler             mh,
  483.                                  QTAtomContainer         container,
  484.                                  QTAtom                 actionAtom)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x054E, 0x7000, 0xA82A);
  485.  
  486.  
  487.  
  488.  
  489. /* selectors for component calls */
  490. enum {
  491.     kMediaInitializeSelect                            = 0x0501,
  492.     kMediaSetHandlerCapabilitiesSelect                = 0x0502,
  493.     kMediaIdleSelect                                = 0x0503,
  494.     kMediaGetMediaInfoSelect                        = 0x0504,
  495.     kMediaPutMediaInfoSelect                        = 0x0505,
  496.     kMediaSetActiveSelect                            = 0x0506,
  497.     kMediaSetRateSelect                                = 0x0507,
  498.     kMediaGGetStatusSelect                            = 0x0508,
  499.     kMediaTrackEditedSelect                            = 0x0509,
  500.     kMediaSetMediaTimeScaleSelect                    = 0x050A,
  501.     kMediaSetMovieTimeScaleSelect                    = 0x050B,
  502.     kMediaSetGWorldSelect                            = 0x050C,
  503.     kMediaSetDimensionsSelect                        = 0x050D,
  504.     kMediaSetClipSelect                                = 0x050E,
  505.     kMediaSetMatrixSelect                            = 0x050F,
  506.     kMediaGetTrackOpaqueSelect                        = 0x0510,
  507.     kMediaSetGraphicsModeSelect                        = 0x0511,
  508.     kMediaGetGraphicsModeSelect                        = 0x0512,
  509.     kMediaGSetVolumeSelect                            = 0x0513,
  510.     kMediaSetSoundBalanceSelect                        = 0x0514,
  511.     kMediaGetSoundBalanceSelect                        = 0x0515,
  512.     kMediaGetNextBoundsChangeSelect                    = 0x0516,
  513.     kMediaGetSrcRgnSelect                            = 0x0517,
  514.     kMediaPrerollSelect                                = 0x0518,
  515.     kMediaSampleDescriptionChangedSelect            = 0x0519,
  516.     kMediaHasCharacteristicSelect                    = 0x051A,
  517.     kMediaGetOffscreenBufferSizeSelect                = 0x051B,
  518.     kMediaSetHintsSelect                            = 0x051C,
  519.     kMediaGetNameSelect                                = 0x051D,
  520.     kMediaForceUpdateSelect                            = 0x051E,
  521.     kMediaGetDrawingRgnSelect                        = 0x051F,
  522.     kMediaGSetActiveSegmentSelect                    = 0x0520,
  523.     kMediaInvalidateRegionSelect                    = 0x0521,
  524.     kMediaGetNextStepTimeSelect                        = 0x0522,
  525.     kMediaSetNonPrimarySourceDataSelect                = 0x0523,
  526.     kMediaChangedNonPrimarySourceSelect                = 0x0524,
  527.     kMediaTrackReferencesChangedSelect                = 0x0525,
  528.     kMediaGetSampleDataPointerSelect                = 0x0526,
  529.     kMediaReleaseSampleDataPointerSelect            = 0x0527,
  530.     kMediaTrackPropertyAtomChangedSelect            = 0x0528,
  531.     kMediaSetTrackInputMapReferenceSelect            = 0x0529,
  532.     kMediaSetVideoParamSelect                        = 0x052B,
  533.     kMediaGetVideoParamSelect                        = 0x052C,
  534.     kMediaCompareSelect                                = 0x052D,
  535.     kMediaGetClockSelect                            = 0x052E,
  536.     kMediaSetSoundOutputComponentSelect                = 0x052F,
  537.     kMediaGetSoundOutputComponentSelect                = 0x0530,
  538.     kMediaSetSoundLocalizationDataSelect            = 0x0531,
  539.     kMediaGetInvalidRegionSelect                    = 0x053C,
  540.     kMediaSampleDescriptionB2NSelect                = 0x053E,
  541.     kMediaSampleDescriptionN2BSelect                = 0x053F,
  542.     kMediaQueueNonPrimarySourceDataSelect            = 0x0540,
  543.     kMediaFlushNonPrimarySourceDataSelect            = 0x0541,
  544.     kMediaGetURLLinkSelect                            = 0x0543,
  545.     kMediaMakeMediaTimeTableSelect                    = 0x0545,
  546.     kMediaHitTestForTargetRefConSelect                = 0x0546,
  547.     kMediaHitTestTargetRefConSelect                    = 0x0547,
  548.     kMediaGetActionsForQTEventSelect                = 0x0548,
  549.     kMediaDisposeTargetRefConSelect                    = 0x0549,
  550.     kMediaTargetRefConsEqualSelect                    = 0x054A,
  551.     kMediaSetActionsCallbackSelect                    = 0x054B,
  552.     kMediaPrePrerollBeginSelect                        = 0x054C,
  553.     kMediaPrePrerollCancelSelect                    = 0x054D,
  554.     kMediaExecuteOneActionSelect                    = 0x054E
  555. };
  556. enum { uppPrePrerollCompleteProcInfo = 0x00000EC0 };             /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  557. #define NewPrePrerollCompleteProc(userRoutine)                     (PrePrerollCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPrePrerollCompleteProcInfo, GetCurrentArchitecture())
  558. #define CallPrePrerollCompleteProc(userRoutine, mh, err, refcon)  CALL_THREE_PARAMETER_UPP((userRoutine), uppPrePrerollCompleteProcInfo, (mh), (err), (refcon))
  559.  
  560. #if PRAGMA_STRUCT_ALIGN
  561.     #pragma options align=reset
  562. #elif PRAGMA_STRUCT_PACKPUSH
  563.     #pragma pack(pop)
  564. #elif PRAGMA_STRUCT_PACK
  565.     #pragma pack()
  566. #endif
  567.  
  568. #ifdef PRAGMA_IMPORT_OFF
  569. #pragma import off
  570. #elif PRAGMA_IMPORT
  571. #pragma import reset
  572. #endif
  573.  
  574. #ifdef __cplusplus
  575. }
  576. #endif
  577.  
  578. #endif /* __MEDIAHANDLERS__ */
  579.  
  580.